Skip to content

ci: pin the three remaining check jobs to --frozen-lockfile - #299

Merged
ualtinok merged 1 commit into
cortexkit:masterfrom
iceteaSA:fix/ci-frozen-lockfile
Aug 10, 2026
Merged

ci: pin the three remaining check jobs to --frozen-lockfile#299
ualtinok merged 1 commit into
cortexkit:masterfrom
iceteaSA:fix/ci-frozen-lockfile

Conversation

@iceteaSA

@iceteaSA iceteaSA commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Closes #295. One-line change ×3, off clean master @ 328c0fdc.

check-plugin (48), check-pi-plugin (104), check-dashboard (129) → bun install --frozen-lockfile, matching the four later jobs.

Verification

On a clean upstream/master worktree:

  • bun install --frozen-lockfile succeeds — 1447 packages, exit 0. The lockfile is consistent with the manifests, so pinning does not break the install.
  • The resulting node_modules resolves biome 2.5.1 — the version biome check . actually executes — rather than the floated 2.5.7.
  • Repo-wide bun run lint passes under the pinned install.

One detail worth recording, since it nearly misled me: bunx @biomejs/biome --version reports 2.5.7 even after a frozen install, because bunx resolves from the registry rather than node_modules. The lint scripts run biome check . through the package's local binary, which is 2.5.1. So a bunx probe is the wrong instrument here — ./node_modules/.bin/biome --version is the one that reflects what CI runs.

Tradeoff

As discussed on the issue: this gives up the incidental early-warning property of floating installs, in exchange for reproducible CI and toolchain upgrades landing as explicit lockfile commits. Flagging it in the commit message too so the reasoning is discoverable from git log and not only from the issue thread.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

Pins the check-plugin, check-pi-plugin, and check-dashboard CI jobs to use bun install --frozen-lockfile. This prevents dependency drift (e.g., @biomejs/biome 2.5.7 vs 2.5.1) and makes CI installs reproducible, addressing #295.

Written for commit c0c63cb. Summary will update on new commits.

Review in cubic

Greptile Summary

This PR makes the remaining three CI check jobs install dependencies from the committed Bun lockfile, preventing unreviewed dependency drift.

  • Adds --frozen-lockfile to dependency installation in check-plugin.
  • Applies the same reproducible installation behavior to check-pi-plugin and check-dashboard.
  • Aligns these checks with the repository's existing end-to-end CI jobs.

Confidence Score: 5/5

The PR appears safe to merge because all three affected jobs can install from the consistent committed lockfile.

The change only enables Bun's frozen-lockfile enforcement for three root workspace installs, with no intervening manifest mutation and with equivalent frozen installs already used by sibling CI jobs.

Important Files Changed

Filename Overview
.github/workflows/ci.yml Pins dependency installation in three check jobs to the committed Bun lockfile; the lockfile and workspace manifests are consistent and no changed-code failure was identified.

Reviews (1): Last reviewed commit: "ci: pin the three remaining check jobs t..." | Re-trigger Greptile

Closes cortexkit#295.

check-plugin (48), check-pi-plugin (104), and check-dashboard (129) ran bare
`bun install` while every later job used --frozen-lockfile. Per the issue thread
this was drift, not policy: those three predate the May publish-gating rework
that introduced the flag, and nobody decided the check jobs should float.

bun.lock is committed, so the unpinned jobs were free to resolve outside it.
Concretely, biome is declared ^2.5.1 in all four package manifests and pinned to
2.5.1 in the lockfile; an unpinned CI install floated it to 2.5.7, whose
formatter disagrees. That produced Check (plugin) lint failures on files the PR
under test never touched, with the same commit clean locally -- reproducible as
19 errors on 2.5.7 versus 1 on 2.5.1 against clean master.

Verified on a clean upstream/master worktree that --frozen-lockfile installs
successfully (1447 packages, exit 0), and that the resulting node_modules
resolves biome 2.5.1 -- the version `biome check .` actually executes -- rather
than the floated 2.5.7. Repo-wide lint passes under the pinned install.

Tradeoff, per the issue: this gives up the incidental early-warning property of
floating installs, in exchange for reproducible CI and toolchain upgrades landing
as explicit lockfile commits.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Re-trigger cubic

@ualtinok
ualtinok merged commit 1755c95 into cortexkit:master Aug 10, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Three CI jobs run bare bun install while the rest use --frozen-lockfile — deliberate, or drift?

2 participants